package com.cmdi.opensite.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.util.Date;

/**
 * 活动实体类
 */
@Data
@TableName("t_activity")
public class Activity {
    /**
     * 活动ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    
    /**
     * 活动标题
     */
    private String title;
    
    /**
     * 活动描述
     */
    private String description;
    
    /**
     * 活动分类ID
     */
    private Long categoryId;
    
    /**
     * 组织者ID
     */
    private Long organizerId;
    
    /**
     * 开始时间
     */
    private Date startTime;
    
    /**
     * 结束时间
     */
    private Date endTime;
    
    /**
     * 活动地点
     */
    private String location;
    
    /**
     * 最大参与人数（0表示无限制）
     */
    private Integer maxParticipants;
    
    /**
     * 当前参与人数
     */
    private Integer currentParticipants;
    
    /**
     * 状态（0：草稿，1：待审核，2：已审核，3：已发布，4：已结束，5：已取消）
     */
    private Integer status;
    
    /**
     * 活动图片URL
     */
    private String imageUrl;
    
    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private Date createdAt;
    
    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updatedAt;
    
    // 非数据库字段
    @TableField(exist = false)
    private ActivityCategory category;
    
    @TableField(exist = false)
    private User organizer;
    
    @TableField(exist = false)
    private double averageScore; // 平均评分
    
    @TableField(exist = false)
    private Integer commentCount; // 评论数量
    
    @TableField(exist = false)
    private Boolean isRegistered; // 当前用户是否已报名
}